<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AI电商智能客服系统 - 功能流程图</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #f5f5f5;
        }
        .container {
            max-width: 1000px;
            margin: 0 auto;
            background-color: white;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        h1 {
            text-align: center;
            color: #333;
            margin-bottom: 30px;
        }
        .flow-diagram {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0;
        }
        .flow-step {
            width: 80%;
            position: relative;
            margin-bottom: 15px;
        }
        .step-content {
            display: flex;
            align-items: center;
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            background-color: #fff;
            border-left: 5px solid #3498db;
        }
        .step-number {
            background-color: #3498db;
            color: white;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            margin-right: 15px;
            flex-shrink: 0;
        }
        .step-info {
            flex-grow: 1;
        }
        .step-title {
            font-weight: bold;
            margin-bottom: 5px;
            color: #3498db;
        }
        .step-desc {
            color: #555;
            font-size: 0.9em;
        }
        .arrow {
            height: 30px;
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .arrow::after {
            content: "";
            width: 0; 
            height: 0; 
            border-left: 15px solid transparent;
            border-right: 15px solid transparent;
            border-top: 15px solid #3498db;
        }
        .note {
            background-color: #fffacd;
            padding: 15px;
            border-radius: 8px;
            margin: 20px 0;
            border-left: 5px solid #f1c40f;
        }
        .note-title {
            font-weight: bold;
            color: #f39c12;
            margin-bottom: 5px;
        }
        .branch {
            display: flex;
            width: 90%;
            justify-content: space-between;
            margin: 10px 0;
        }
        .branch-path {
            width: 45%;
            padding: 10px;
            border-radius: 8px;
            background-color: #ecf0f1;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        .branch-title {
            font-weight: bold;
            margin-bottom: 5px;
            color: #7f8c8d;
        }
        .branch-desc {
            font-size: 0.9em;
            color: #555;
            text-align: center;
        }
        .branch-arrow {
            margin: 10px 0;
        }
        .join-arrow {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 10px 0;
        }
        .join-line {
            display: flex;
            width: 90%;
            justify-content: space-between;
        }
        .horizontal-line {
            width: 45%;
            height: 2px;
            background-color: #3498db;
            margin-top: 15px;
        }
        .vertical-line {
            width: 2px;
            height: 30px;
            background-color: #3498db;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>AI电商智能客服系统 - 功能流程图</h1>
        
        <div class="flow-diagram">
            <!-- 步骤 1: 知识库准备 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">1</div>
                    <div class="step-info">
                        <div class="step-title">知识库准备</div>
                        <div class="step-desc">
                            收集并组织电商领域的知识文档，包括产品信息、政策条款、常见问题和用户指南等，按照结构化方式存储在知识库目录中。
                        </div>
                    </div>
                </div>
            </div>
            <div class="arrow"></div>
            
            <!-- 步骤 2: 创建向量数据库 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">2</div>
                    <div class="step-info">
                        <div class="step-title">创建向量数据库</div>
                        <div class="step-desc">
                            系统加载知识文档，对文本进行分割，并使用Embedding模型将文本片段转换为向量表示，构建可检索的向量数据库。
                        </div>
                    </div>
                </div>
            </div>
            <div class="arrow"></div>
            
            <!-- 步骤 3: 系统初始化 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">3</div>
                    <div class="step-info">
                        <div class="step-title">系统初始化</div>
                        <div class="step-desc">
                            初始化CustomerServiceSystem，配置LLM和Embedding模型，创建主路由查询引擎和备用向量查询引擎，准备响应用户查询。
                        </div>
                    </div>
                </div>
            </div>
            <div class="arrow"></div>
            
            <!-- 步骤 4: 用户提问 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">4</div>
                    <div class="step-info">
                        <div class="step-title">用户提问</div>
                        <div class="step-desc">
                            用户通过UI界面输入问题，如"手机退货需要什么条件？"，系统接收问题并准备处理。
                        </div>
                    </div>
                </div>
            </div>
            <div class="arrow"></div>
            
            <!-- 步骤 5: 查询处理 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">5</div>
                    <div class="step-info">
                        <div class="step-title">查询处理</div>
                        <div class="step-desc">
                            系统尝试使用主路由查询引擎处理用户问题。该引擎分析问题，确定最佳匹配的知识领域，并检索相关文档片段。
                        </div>
                    </div>
                </div>
            </div>
            
            <!-- 分支处理 -->
            <div class="branch">
                <div class="branch-path">
                    <div class="branch-title">正常路径</div>
                    <div class="branch-desc">主路由查询引擎成功处理查询</div>
                    <div class="branch-arrow">
                        <div class="arrow"></div>
                    </div>
                    <div class="step-content" style="width: 100%; box-sizing: border-box;">
                        <div class="step-info">
                            <div class="step-title">使用LLM生成回答</div>
                            <div class="step-desc">
                                系统将用户问题和检索到的相关文档传递给LLM，生成准确、自然的回答。
                            </div>
                        </div>
                    </div>
                </div>
                
                <div class="branch-path">
                    <div class="branch-title">异常路径</div>
                    <div class="branch-desc">主路由查询引擎失败</div>
                    <div class="branch-arrow">
                        <div class="arrow"></div>
                    </div>
                    <div class="step-content" style="width: 100%; box-sizing: border-box;">
                        <div class="step-info">
                            <div class="step-title">切换到备用引擎</div>
                            <div class="step-desc">
                                系统检测到主引擎失败，自动切换到备用向量查询引擎进行处理。
                            </div>
                        </div>
                    </div>
                    <div class="branch-arrow">
                        <div class="arrow"></div>
                    </div>
                    <div class="step-content" style="width: 100%; box-sizing: border-box;">
                        <div class="step-info">
                            <div class="step-title">备用模式生成回答</div>
                            <div class="step-desc">
                                备用引擎检索相关文档并调用LLM生成回答。
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            
            <!-- 合并路径 -->
            <div class="join-arrow">
                <div class="join-line">
                    <div class="horizontal-line"></div>
                    <div class="horizontal-line"></div>
                </div>
                <div class="vertical-line"></div>
            </div>
            
            <!-- 步骤 6: 回答展示 -->
            <div class="flow-step">
                <div class="step-content">
                    <div class="step-number">6</div>
                    <div class="step-info">
                        <div class="step-title">回答展示</div>
                        <div class="step-desc">
                            系统通过UI界面以流式方式向用户展示生成的回答，并可选择性地显示参考文档的来源信息和置信度。
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="note">
            <div class="note-title">注意事项</div>
            <div class="note-desc">
                1. 向量数据库创建通常只需在首次运行或知识库更新时执行，不需要每次查询都创建<br>
                2. 系统支持多种LLM和Embedding模型配置，可根据实际需求和资源选择合适的配置<br>
                3. 流式输出是一项重要特性，可以大幅提升用户体验，尤其是在生成较长回答时<br>
                4. 异常处理机制是系统稳定性的关键保障，确保在主路径失败时仍能提供服务
            </div>
        </div>
    </div>
</body>
</html> 